 <?php
 	echo "hola<br>";
 
	if($_POST["minutos"]=="")  {
		$minutos=0;
 	}
	else {
		$minutos=$_POST["minutos"];
	} 
	if($_POST["llamadas"]=="") {
		$duracion=2;
		$llamadas=($minutos/2);
 	}
	else {
		$llamadas=$_POST["llamadas"];
		$duracion=($minutos/$llamadas);
	} 
	if($_POST["sms"]=="" ) {
		$sms=	0; 
 	}
	else {
		$sms=$_POST["sms"];
	} 
	if($_POST["megas"]=="") {
		$megas=0;	 
 	}
	else {
		$megas=$_POST["megas"];
	} 
	$modalidad=$_POST["modalidad"];
	$usuario=$_POST["usuario"];

	echo "minutos " . $minutos . "<br>llamadas " . $llamadas . "<br>duraci&oacute;n " . $duracion . "<br>sms " . $sms 
	. "<br>megas " . $megas . "<br>modalidad " . $modalidad. "<br>usuario " .$usuario . "<br>"; 
	
 
/*$minutos=300;
$llamadas=12;
$duracion=$minutos/$llamadas;
$sms=30;
$megas=800;
echo "minutos " . $minutos . "<br>llamadas " . $llamadas . "<br>duraci&oacute;n " . $duracion . "<br>sms " . $sms 
		. "<br>megas " . $megas ; 
*/
 
 
 	$servidor="localhost";
 	$user="root";
 	$password="chup1274";
 	$bd="bd_tarifas";
	
        
        /*LA CONSULTA depende de muchas cosas: 
            Primero-> si lleva o no minutos (o sms) o megas, pues hay tarifas sin voz o sin datos
            Segundo-> la modalidad, si es de prepago o de contrato
            Tercero-> el usuario, si es particular o empresa.
            Combinando, salen un montón de consultas
        */
        
        //Minutos ≠ 0 o sms ≠ 0 o megas≠0
        if (($minutos!=0 || $sms!=0) && $megas!=0){
            $consulta="select * from tarifas where lleva_voz=1 and lleva_datos=1 ";
        }
        else if($minutos!=0 || sms!=0){
            $consulta="select * from tarifas where lleva_voz=1 "; //los que no llevan voz no los puedo incluir
        }
        else if($megas!=0){
            $consulta="select * from tarifas where lleva_datos=1 "; //los que no llevan datos no los puedo incluir
        }
        else {
            $consulta="select * from tarifas where id<>0 "; //no estoy filtrando, pero ya añado el Where que necesito para concatenar los siguientes pasos
        }
        
        //Modalidad,si es modalidad 2, no hago nada, solo discrimino si contrato o prepago
        if($modalidad==0){
            $consulta=$consulta."and modalidad=0 ";
        }
        else if ($modalidad==1){
            $consulta=$consulta."and modalidad=1 ";
        }
        
        //Usuario, distinguiendo que sea particular o empresa, en la tabla 0-particular, 1-empresa, 2-ambos
        if ($usuario==0){
            $consulta=$consulta." and (usuario=0 || usuario=2) ";
        }
        else {
            $consulta=$consulta." and (usuario=1 || usuario=2)";
        }
        
        $link=mysql_connect($servidor, $user, $password);
 	mysql_select_db($bd, $link);
 	$result=mysql_query($consulta, $link);
 
 	$num_filas=mysql_num_rows($result);
 	echo "<br><br> N&uacute;mero de filas: $num_filas<br>";
 
 	$pos=0;
	while($fila=mysql_fetch_row($result) ){
		//$vector=$fila[0]."~".$fila[1]."~".$fila[2]."~".$fila[3]."~".$fila[4]."~".$fila[5]."~".$fila[6]."~".
		//	$fila[7]."~".$fila[8]."~".$fila[9]."~".$fila[10]."~".$fila[11]."~".$fila[12]."~".$fila[13]."~".
		//	$fila[14]."~".$fila[15]."~".$fila[16]."~".$fila[17]."~".$fila[18]."~".$fila[19]."~".
		//	$fila[20]."~".$fila[21];
            /* EL orden es:
		0- id		6- cuota		12- min_gratis_llamada	18- precio_mb
		1- compania	7- comsumo_min		13- num_destinos	19- usuario
		2- tarifa	8- lleva_voz		14- sms_incluidos	20- caracteristicas
		3- id_operador	9- min_incluidos	15- precio_sms		21- url
		4- modalidad	10- precio_establec     16- lleva_datos		
		5- tipo_tarifa	11- precio_minuto       17- mb_incluidas
            */			
          // print_r("<br>".$vector);
            
           
       
            //PRIMER CALCULO los minutos. discrimino primero si lleva minutos gratis o no $fila[9]
            if ($fila[9]>0){
                $min_gratis=$fila[9];
                $min_de_mas=$minutos-$min_gratis;
                if ($min_de_mas<0){
                   $coste_min=$fila[6]; //si nollega al mínimo, el coste es la cuota
                }
                else{
                    $coste_min_de_mas=($fila[10]/$duracion)+$fila[11]; //(precio establecimiento/duracion) más el coste del minuto
                    $coste_min=$fila[6]+($min_de_mas*$coste_min_de_mas);
                }
            }
            else{
                //si no hay minutos gratis,puede haber min gratis por llamada $fila[12] y consumo mínimo de voz $fila[67] además de cuota $fila[6]
                if($fila[12]==0){
                    $coste_1_minuto=($fila[10]/$duracion)+$fila[11];
                    $coste_minutos_hablados=$minutos*$coste_1_minuto;
                    if($coste_minutos_hablados<$fila[7]){
                        $coste_minutos_hablados=$fila[7];
                    }
                    $coste_min=$coste_minutos_hablados+$fila[6]; //El coste total es el coste de los monutos hablados (o el cons minimo) + la cuota
                }
                else{
                    //discrimino si la duración supera el número de minutos gratis por llamada $fila[12] y comparo com cons min voz
                    $minutos_de_mas=$duracion-$fila[12];
                    if ($minutos_de_mas<=0){
                        $coste_1_minuto=$fila[10]/$duracion; //no llega al mínimo, le coste del minuto es precio establecimiento / duracion
                    }
                    else{
                        $coste_1_minuto=($fila[10] + $min_de_mas*$fila[11])/$duracion; // (precio establec + coste de los minutos de más) / duración                        
                    }
                    $coste_minutos_hablados=$minutos*$coste_1_minuto;
                    if($coste_minutos_hablados<$fila[7]){
                        $coste_minutos_hablados=$fila[7];
                    }
                    $coste_min=$coste_minutos_hablados+$fila[6];
                }
            }
            //SEGUNDO CALCULO los sms. discrimino primero si lleva sms gratis o no $fila[14]
            if ($fila[14]>0){
                $sms_gratis=$fila[14];
                $sms_de_mas=$sms-$sms_gratis;
                if ($sms_de_mas<=0){
                   $coste_sms=0; //si no llega al mínimo, el coste es 0,la cuota se paga en el PRIMER CALCULO
                }
                else{
                    $coste_sms=$sms_de_mas*$fila[15]; //(precio de los sms de más
                }
            }
            else{
                $coste_sms=$sms*$fila[15]; //si no hay sms gratis, el coste es el de los sms por su precio
            }
            //TERCER CALCULO los megas. discrimino primero si lleva megas gratis o no $fila[17]
            if ($fila[17]>0){
                $megas_gratis=$fila[17];
                $megas_de_mas=$megas-$megas_gratis;
                if ($megas_de_mas<=0){
                   $coste_megas=0; //si no llega al mínimo, el coste es 0,la cuota se paga en el PRIMER CALCULO
                }
                else{
                    $coste_megas=$megas_de_mas*$fila[18]; //(precio de los megas de más
                }
            }
            else{
                $coste_megas=$megas*$fila[18]; //si no hay megas gratis, el coste es el de los megas por su precio
            }
         
            
            echo $fila[0]." - Compania: ".$fila[1]." - Tarifa: ".$fila[2]. " - Modalidad: ". $fila[4]." - Usuario: ". $fila[19]."<br>";
            $coste_total=$coste_min+$coste_sms+$coste_megas;
            echo "Coste min: ".$coste_min." Coste sms: ".$coste_sms." Coste megas: ".$coste_megas." COSTE total: ".$coste_total."<br><br>";
            
            array_unshift($fila, $coste_total, $coste_total*1.21);
            echo "<br> Nuevo array: Fila-> " . $fila[2]. " Coste-> ".$fila[0] ." <br>";
            
            $vector[$pos]=$fila;
            $pos++;
        }
        
        sort($vector);
        $num=count($vector);
        for ($i=0;$i<$num;$i++){
        echo "<br> Nuevo arrayyy: Fila-> " . $vector[$i][2]. " Coste-> ".$vector[$i][0] ." <br>";
        }
 
 	/*do {
		$fila[$pos]=mysql_fetch_row($result);
		$pos++; 
 	} 
  	while($pos<$num_filas);
  	echo "<br>pos= ".$pos;
  	*/
 
 	//Guardo cada tarifa en un vector llamado $vector, y cada tarifa la guardo de la forma:
 	//$vector[$i]=$fila[$i][id]."~". $fila[$i][compania] ."~".$fila[$i][id_operador]... según el orden de la tabla tarifas
 	//y después separo cada tarifa en un vector llamado $tarifa donde cada elememto corresponde a cada campo de la tabla por orden
 
	/*for ($i=0; $i<$pos;$i++){
		$vector[$i]=$fila[$i][0]."~".$fila[$i][1]."~".$fila[$i][2]."~".$fila[$i][3]."~".$fila[$i]4]."~".$fila[$i][5]."~".$fila[$i][6]."~".
			$fila[$i][7]."~".$fila[$i][8]."~".$fila[$i][9]."~".$fila[$i][10]."~".$fila[$i][11]."~".$fila[$i][12]."~".$fila[$i][13]."~".
			$fila[$i][14]."~".$fila[$i][15]."~".$fila[$i][16]."~".$fila[$i][17]."~".$fila[$i][18]."~".$fila[$i][19]."~".
			$fila[$i][20]."~".$fila[$i][21];
		*/	
			
		//$tarifa=preg_split("/~/",$vector[$i]);
		//print_r($tarifa);	
			
	//} 
	
 ?>
